查看原文
其他

dApp 实用开发存储指南之 Gist | Web3.0 dApp 开发(十)

李大狗就是我 李大狗LDG
2024-11-19

对于区块链 dApp 开发而言,「存储」是个重要的话题。我们究竟该将数据置于何处?从本篇开始,我们将就 dApp 中的存储问题进行一系列的探讨,大致会包括如下几种不同的存储方式:

链上变量、IPFS、Arweave、Gist 和传统后端存储。

第一篇会先谈论 Gist

0x01 关于数据的关键概念辨析

  • 数据所有权:数据所有权归平台 / 数据所有权归用户 / 无主数据

  • 数据存储方式:用户本地数据 / 服务器数据库数据 / 分布式存储数据 / 区块链存储数据

  • 数据生命周期:临时数据 / 长期数据 / 超长期数据(100 年+)

  • 数据和应用的关系:数据和单一应用一体 / 数据和多个应用一体 / 数据和应用完全解耦

  • 数据开放状态:私有化 / 读开放 / 写开放 / 读写开放

  • 数据存储成本:无成本 / 低成本 / 高成本

  • 数据和智能合约的关系:智能合约可直接操作数据 / 智能合约不可直接操作数据

关于数据,Web3 dApp 的关键要义之一就是数据和应用的解耦。我们可以为 uniswap 开发多个 dApp,而微信只能有一个官方开发的 App。

但是,解耦就一定意味着数据要存储在去中心化网络上吗?

0x02 数据开放与数据不可篡改

「数据开放」和「数据不可篡改」是数据的两个特性。有的时候对这两个特性都需要,这个时候我们会将数据存放于区块链网络——无论是存储型链(IPFS、Arweave 等)还是非存储型链(Ethereum 等)。

但是,如果我们需要的只是「数据开放」这个特性,那末我们没必要为去中心化而去中心化,而是可以使用免费的「数据托管平台」,例如 Gist

一个用 Gist 做数据托管的例子:

https://gist.github.com/leeduckgo/220087607d69490980ba59c235b86f59

image-20220904092619096

在有需要时,我们也可以很容易地让 Gist 数据固化到链上,如下是一个 Gist 数据在 IPFS 上进行「快照」的例子:

image-20220904092934622

0x03 Gist-based App

在 Gist 数据的基础上,我们可以很轻易地构建无数据库的 Web App,而无需自己的服务器。例如一个个人博客。

+-----------+         +--------------------------------+
| Gist Data |---------|   Blog built by User himself!  |
+-----------+         +--------------------------------+

而一个真正富有「让用户数据回归自身」的 Web3 精神的 Web3 App,允许用户将自己的数据导出到 Gist 上,甚至提供相应的 Gist-based App 构建指南,是一种很好的做法。

+----------+
| Web3 App |
+----------+
      ↓ OuTPuT
+----------+         +--------------------------------------------------------------+
|Gist Data |---------| User play with his gist data, built any cool things he like! |
+----------+         +--------------------------------------------------------------+

同时,我们也不必担忧 Gist 的可用性问题。因为区块链网络的存储可以作为我们的「数据备份」:

+----------+          +--------------------------------------------------------------+
|Gist Data |-------+--| User play with his gist data, built any cool things he like! |
+----------+       |  +--------------------------------------------------------------+
      | Snapshot   |
+----------+       |
| IPFS/AR  |-------+ Link to IPFS or Arweave Data if sth wrong with GIST.
+----------+

0x04 Gist-based Code

除了将数据托管在 Gist 平台上,我们也可以将代码片段托管到 Gist 平台上,这种片段我们可以称之为Snippets

事实上,我们认为智能合约和 FaaS 中的 功能(Functions),均可以视为 Snippet,将其存储在 Gist 中。

  Snippets from Gist/Arweave/IPFS
      ↓
+-----------------------+
|   Runtime Code Loader |
+-------------+---------+
|  FaaS 底座   |  组件集 |
+---0---------+---------




往期回顾:

Staker  | Web3.0 dApp 开发(九)

Vercel 极速入门 | Web3.0 dApp 开发(八)

Token 自动售卖机 | Web3.0 dApp 开发(七)

SVG NFT 全面实践 | Web3.0 dApp 开发(六)

值的存取应用3.0 | Web3.0 dApp 开发(五)

值的存取应用2.0 |  Web3.0 dApp 开发(四)

值的存取应用1.0 | web3.0 dApp开发(三)

Scaffold-eth 快速上手 | Web3.0 dApp 开发(二)

eth.build 快速上手 | Web3.0 dApp 开发(一)

Crypto觉醒 | Web3.0 DApp 全面掌握


继续滑动看下一个
李大狗LDG
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存